
package com.microsoft.schemas.exchange.services._2006.types;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;


/**
 * 
 * <pre>
 * Copyright (c) 2000-2003 Yale University. All rights reserved.
 * 
 * THIS SOFTWARE IS PROVIDED "AS IS," AND ANY EXPRESS OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE EXPRESSLY
 * DISCLAIMED. IN NO EVENT SHALL YALE UNIVERSITY OR ITS EMPLOYEES BE
 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED, THE COSTS OF
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED IN ADVANCE OF THE POSSIBILITY OF SUCH
 * DAMAGE.
 * 
 * Redistribution and use of this software in source or binary forms,
 * with or without modification, are permitted, provided that the
 * following conditions are met:
 * 
 * 1. Any redistribution must include the above copyright notice and
 * disclaimer and this list of conditions in any related documentation
 * and, if feasible, in the redistributed software.
 * 
 * 2. Any redistribution must include the acknowledgment, "This product
 * includes software developed by Yale University," in any related
 * documentation and, if feasible, in the redistributed software.
 * 
 * 3. The names "Yale" and "Yale University" must not be used to endorse
 * or promote products derived from this software.
 * </pre>
 *

 * 
 * <p>Java class for RecurrenceType complex type.
 * 
 * <p>The following schema fragment specifies the expected content contained within this class.
 * 
 * <pre>
 * &lt;complexType name="RecurrenceType">
 *   &lt;complexContent>
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       &lt;sequence>
 *         &lt;group ref="{http://schemas.microsoft.com/exchange/services/2006/types}RecurrencePatternTypes"/>
 *         &lt;group ref="{http://schemas.microsoft.com/exchange/services/2006/types}RecurrenceRangeTypes"/>
 *       &lt;/sequence>
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "RecurrenceType", propOrder = {
    "relativeYearlyRecurrence",
    "absoluteYearlyRecurrence",
    "relativeMonthlyRecurrence",
    "absoluteMonthlyRecurrence",
    "weeklyRecurrence",
    "dailyRecurrence",
    "noEndRecurrence",
    "endDateRecurrence",
    "numberedRecurrence"
})
public class RecurrenceType {

    @XmlElement(name = "RelativeYearlyRecurrence")
    protected RelativeYearlyRecurrencePatternType relativeYearlyRecurrence;
    @XmlElement(name = "AbsoluteYearlyRecurrence")
    protected AbsoluteYearlyRecurrencePatternType absoluteYearlyRecurrence;
    @XmlElement(name = "RelativeMonthlyRecurrence")
    protected RelativeMonthlyRecurrencePatternType relativeMonthlyRecurrence;
    @XmlElement(name = "AbsoluteMonthlyRecurrence")
    protected AbsoluteMonthlyRecurrencePatternType absoluteMonthlyRecurrence;
    @XmlElement(name = "WeeklyRecurrence")
    protected WeeklyRecurrencePatternType weeklyRecurrence;
    @XmlElement(name = "DailyRecurrence")
    protected DailyRecurrencePatternType dailyRecurrence;
    @XmlElement(name = "NoEndRecurrence")
    protected NoEndRecurrenceRangeType noEndRecurrence;
    @XmlElement(name = "EndDateRecurrence")
    protected EndDateRecurrenceRangeType endDateRecurrence;
    @XmlElement(name = "NumberedRecurrence")
    protected NumberedRecurrenceRangeType numberedRecurrence;

    /**
     * Gets the value of the relativeYearlyRecurrence property.
     * 
     * @return
     *     possible object is
     *     {@link RelativeYearlyRecurrencePatternType }
     *     
     */
    public RelativeYearlyRecurrencePatternType getRelativeYearlyRecurrence() {
        return relativeYearlyRecurrence;
    }

    /**
     * Sets the value of the relativeYearlyRecurrence property.
     * 
     * @param value
     *     allowed object is
     *     {@link RelativeYearlyRecurrencePatternType }
     *     
     */
    public void setRelativeYearlyRecurrence(RelativeYearlyRecurrencePatternType value) {
        this.relativeYearlyRecurrence = value;
    }

    /**
     * Gets the value of the absoluteYearlyRecurrence property.
     * 
     * @return
     *     possible object is
     *     {@link AbsoluteYearlyRecurrencePatternType }
     *     
     */
    public AbsoluteYearlyRecurrencePatternType getAbsoluteYearlyRecurrence() {
        return absoluteYearlyRecurrence;
    }

    /**
     * Sets the value of the absoluteYearlyRecurrence property.
     * 
     * @param value
     *     allowed object is
     *     {@link AbsoluteYearlyRecurrencePatternType }
     *     
     */
    public void setAbsoluteYearlyRecurrence(AbsoluteYearlyRecurrencePatternType value) {
        this.absoluteYearlyRecurrence = value;
    }

    /**
     * Gets the value of the relativeMonthlyRecurrence property.
     * 
     * @return
     *     possible object is
     *     {@link RelativeMonthlyRecurrencePatternType }
     *     
     */
    public RelativeMonthlyRecurrencePatternType getRelativeMonthlyRecurrence() {
        return relativeMonthlyRecurrence;
    }

    /**
     * Sets the value of the relativeMonthlyRecurrence property.
     * 
     * @param value
     *     allowed object is
     *     {@link RelativeMonthlyRecurrencePatternType }
     *     
     */
    public void setRelativeMonthlyRecurrence(RelativeMonthlyRecurrencePatternType value) {
        this.relativeMonthlyRecurrence = value;
    }

    /**
     * Gets the value of the absoluteMonthlyRecurrence property.
     * 
     * @return
     *     possible object is
     *     {@link AbsoluteMonthlyRecurrencePatternType }
     *     
     */
    public AbsoluteMonthlyRecurrencePatternType getAbsoluteMonthlyRecurrence() {
        return absoluteMonthlyRecurrence;
    }

    /**
     * Sets the value of the absoluteMonthlyRecurrence property.
     * 
     * @param value
     *     allowed object is
     *     {@link AbsoluteMonthlyRecurrencePatternType }
     *     
     */
    public void setAbsoluteMonthlyRecurrence(AbsoluteMonthlyRecurrencePatternType value) {
        this.absoluteMonthlyRecurrence = value;
    }

    /**
     * Gets the value of the weeklyRecurrence property.
     * 
     * @return
     *     possible object is
     *     {@link WeeklyRecurrencePatternType }
     *     
     */
    public WeeklyRecurrencePatternType getWeeklyRecurrence() {
        return weeklyRecurrence;
    }

    /**
     * Sets the value of the weeklyRecurrence property.
     * 
     * @param value
     *     allowed object is
     *     {@link WeeklyRecurrencePatternType }
     *     
     */
    public void setWeeklyRecurrence(WeeklyRecurrencePatternType value) {
        this.weeklyRecurrence = value;
    }

    /**
     * Gets the value of the dailyRecurrence property.
     * 
     * @return
     *     possible object is
     *     {@link DailyRecurrencePatternType }
     *     
     */
    public DailyRecurrencePatternType getDailyRecurrence() {
        return dailyRecurrence;
    }

    /**
     * Sets the value of the dailyRecurrence property.
     * 
     * @param value
     *     allowed object is
     *     {@link DailyRecurrencePatternType }
     *     
     */
    public void setDailyRecurrence(DailyRecurrencePatternType value) {
        this.dailyRecurrence = value;
    }

    /**
     * Gets the value of the noEndRecurrence property.
     * 
     * @return
     *     possible object is
     *     {@link NoEndRecurrenceRangeType }
     *     
     */
    public NoEndRecurrenceRangeType getNoEndRecurrence() {
        return noEndRecurrence;
    }

    /**
     * Sets the value of the noEndRecurrence property.
     * 
     * @param value
     *     allowed object is
     *     {@link NoEndRecurrenceRangeType }
     *     
     */
    public void setNoEndRecurrence(NoEndRecurrenceRangeType value) {
        this.noEndRecurrence = value;
    }

    /**
     * Gets the value of the endDateRecurrence property.
     * 
     * @return
     *     possible object is
     *     {@link EndDateRecurrenceRangeType }
     *     
     */
    public EndDateRecurrenceRangeType getEndDateRecurrence() {
        return endDateRecurrence;
    }

    /**
     * Sets the value of the endDateRecurrence property.
     * 
     * @param value
     *     allowed object is
     *     {@link EndDateRecurrenceRangeType }
     *     
     */
    public void setEndDateRecurrence(EndDateRecurrenceRangeType value) {
        this.endDateRecurrence = value;
    }

    /**
     * Gets the value of the numberedRecurrence property.
     * 
     * @return
     *     possible object is
     *     {@link NumberedRecurrenceRangeType }
     *     
     */
    public NumberedRecurrenceRangeType getNumberedRecurrence() {
        return numberedRecurrence;
    }

    /**
     * Sets the value of the numberedRecurrence property.
     * 
     * @param value
     *     allowed object is
     *     {@link NumberedRecurrenceRangeType }
     *     
     */
    public void setNumberedRecurrence(NumberedRecurrenceRangeType value) {
        this.numberedRecurrence = value;
    }

}
